package tothreedesignmodel.builder;

/**
 * 建造者模式 *
 * 将一个复杂对象分布创建。如果一个超大的类的属性特别多，我们可以把属性分门别类，
 * 不同属性组成一个稍微小一点的类，再把好几个稍微小点的类窜起来。
 * 比如说一个电脑，可以分成不同的稍微小点的部分CPU、主板、显示器。CPU、主板、
 * 显示器分别有更多的组件，不再细分
 *
 * SpringBoot大量配置采用建造者模式
 *
 * @Author lzhphantom
 * @Description
 * @Date 创建于 15:49 2020/7/16
 * @Modified
 */
public abstract class Builder {
    /**
     * build a cpu
     *
     * @param
     * @return void
     * @description
     * @method buildCPU
     * @author lzhphantom
     * @date 15:49 2020/7/16
     */
    abstract void buildCPU();

    /**
     * build a mainBoard
     *
     * @param
     * @return void
     * @description
     * @method buildMainBoard
     * @author lzhphantom
     * @date 15:49 2020/7/16
     */
    abstract void buildMainBoard();

    /**
     * build a disPlayer
     *
     * @param
     * @return void
     * @description
     * @method buildDisPlayer
     * @author lzhphantom
     * @date 15:50 2020/7/16
     */
    abstract void buildDisPlayer();

    /**
     * create a computer
     *
     * @param
     * @return tothreedesignmodel.builder.Computer
     * @description
     * @method createComputer
     * @author lzhphantom
     * @date 15:50 2020/7/16
     */
    abstract Computer createComputer();
}
